In many computer systems, peripheral devices are connected to the computing systems using interconnects. The interconnects may implement standard bus protocols, such as any of the Peripheral Component Interconnect (PCI) family of bus protocols. PCI express (PCIe) is an extension to PCI and has been used in most computer applications including enterprise servers, consumer personal computers (PC), communication systems, and industrial applications. PCIe uses a packet-based layered protocol, and is based on point-to-point topology, with separate serial links connecting each endpoint device to a host.
A PCIe device includes firmware (embedded software) configured to provide particular functionalities. Over time, updates to the firmware may be desired. Typically, upgrading the firmware of the PCIe device necessitates resetting the host and the PCIe device. This may cause long down-times and increase power consumptions of the host and the PCIe device.